package com.yxx.service;

import com.yxx.entityModel.vo.query.MenuQuery;
import com.yxx.entityModel.vo.request.MenuRequest;
import com.yxx.entityModel.vo.response.MenuOptionResponse;
import com.yxx.entityModel.vo.response.MenuResponse;
import com.yxx.entityModel.vo.response.MenuTreeResponse;

import java.util.List;

/**
 * @author yuxiangxun
 * @date 2025/1/22
 * @apiNote
 */
public interface MenuService {

    /**
     * 查询菜单列表
     * @param menuQuery
     * @return
     */
    List<MenuResponse> listMenuVO(MenuQuery menuQuery);

    /**
     * 添加菜单
     * @param menuRequest
     */
    void addMenu(MenuRequest menuRequest);

    /**
     * 删除菜单
     * @param menuId
     */
    void deleteMenu(Integer menuId);

    /**
     * 修改菜单
     * @param menuRequest
     */
    void updateMenu(MenuRequest menuRequest);

    /**
     * 获取菜单下拉树
     * @return
     */
    List<MenuTreeResponse> menuListTree();

    /**
     *  获取菜单选项树
     * @return
     */
    List<MenuOptionResponse> menuOptionList();

    /**
     * 编辑菜单
     * @param menuId
     * @return
     */
    MenuRequest editMenu(Integer menuId);
}
